Computers are often linked into networks to communicate with each other. Such networks may take on any number of forms and may be based on a number of different standards or protocols, ranging from peer-to-peer connections, hubs, LANs, WANs, the world-wide web, intranet, internet, and the like. Networking can be accomplished by any number of cable connections, whether copper or fiber, as well as wireless networks and so-called “Wi-Fi”.
A necessary component of any networking scenario is for the user's computing device, whether it be a cell phone, PDA, laptop, desktop, or server, to have an “address” or “location” on the appropriate network. It is likewise generally important for servers, routers, and switches to be appropriately configured to maintain adequate and hopefully optimal traffic flow of data across the various network connections. Maintaining security of network communications and associated privacy is also a factor to consider in establishing and creating networks.
In view of the various considerations in networking computers and establishing the associated networks for such computers, it is important for end users, network managers, IT professionals, and the like to be able to network computers and maintain such network in as straightforward a manner as possible. For example, in setting up a network of computers or adding a computer to an existing network, it is often necessary to know the address of a network interface card (“NIC”), also referred to as a network controller. For ETHERNET networks, this address is often referred to as the Media Access Control (“MAC”) address, whereas for 1394-type networks this address is often referred to as the UUID (Universal Unique ID). When configuring “upstream” components from the computer to be networked, such as servers, routers, hubs, and the like, knowing the different addresses of the computers to be networked facilitates network maintenance and updating, and is often necessary or helpful in assigning different ports to different network interface cards (or controllers). It is likewise helpful to both end users and IT professionals to determine additional network controller information, such as link activity and current line speed, as well as to perform simple link diagnostics related to the computers' connections to the appropriate network(s).
There are various drawback and disadvantages to determining the network addresses of computers to be networked and other useful information and diagnostics for network connections. For example, determining MAC addresses or UUIDs often requires access to a label or other indicia physically affixed to the network card or controller itself. This presents a particular problem when the network controller is inside a computer already.
Another approach is to obtain network controller information or perform diagnostics by means of the operating system. This requires disadvantageous time and effort to be spent in configuring or imaging the PC to be networked and booting it up completely just to obtain network address information for adding to the associated network.
It is thus often desirable to determine network controller information, network information, and perform associated diagnostics without recourse to an operating system or other “application-level” software.